perm filename NOTICE[UP,DOC]10 blob
sn#029840 filedate 1973-03-21 generic text, type T, neo UTF8
00010 *25 Feb 1972 NOTICEs LES
00020
00030 This file, kept in NOTICE[UP,DOC], is intended to function as a
00040 computerized bulletin board. System programmers and CUSP file
00050 contributors are invited to disseminate information concerning new
00060 programs and system features by adding notices to this file. The
00070 format is arbitrary, except that the first line (and only the first
00080 line) should begin with a "*" and should contain three fields in the
00090 form
00100 *<date><TAB><subject><TAB><programmer initials>
00110 In the date field, the year, month and day may be given in any order
00120 and the year may be abbreviated to 2 digits, but the month must be
00130 given as 3 or more letters.
00140
00150 *9 Jan 1973 NEWS LES
00160 To get selective listings from the NOTICE file, say "R NEWS", which
00170 will respond with an asterisk and expect a query such as
00180 *March 15
00190 This asks for all notices posted since the ides of March. If the day
00200 is omitted, 1 is assumed; if the month is omitted, January is
00210 assumed; if the year is omitted (as above) the last instance is
00220 assumed.
00230
00240 *Nov<TAB>SAIL
00250 is an example of a more general kind if query. This asks for all
00260 notices since last November 1 that contain the string "SAIL"
00270 somewhere in the subject field, with any case differences ignored.
00280 The search could be made more specific by saying
00290 *NOV<TAB>SAIL<TAB>DCS
00300 which delivers only such notices written by Dan Swinehart.
00310
00320 If the query begins with a <TAB>, so that the date is omitted, then
00330 all dates will be accepted. Similarly, the Subject field may be
00340 omitted. A null query outputs the entire NOTICE file.
00350
00360 If you would like the output to be spooled, type "*" at the end of
00370 your query, e. g.
00380 *July 4, 1776 Sex*
00390 If you would like to see title lines only, put a "-" at the end. You
00400 can use both "*" and "-" together in either order.
00410
00420 If you forget all this, type "?<return>" and this notice will appear
00430 magically.
00440
00450 *1 JAN 1972 DO RPH
00460 Manual is in DO.RPH[S,DOC].
00470
00480 *1 JAN 1972 DMAN REG
00490 Dectape manager (PDP-10 format) -- see DMAN.REG[S,DOC].
00500
00510 *1 JAN 1972 SPOOLER REG
00520 See SPOOL.DOC[S,DOC].
00530
00540 *1 JAN 1972 RSL SL WHAMS BAMS ETC JHS
00550 Service Level Reservation System -- see RSL[S,DOC]
00560
00570
00580 *1 JAN 1972 Keyboard Commands LES
00590 To get a summary of line editor and other Monitor commands, list
00600 KEY.LES[S,DOC).
00610
00620 *1 FEB 1972 INFO REM
00630
00640 To have access to the REM information system, type "RU I[S,REM]".
00650
00660 *1 Jan 1972 FINGER LES
00670
00680 To get a listing of the names of all users currently logged in and
00690 their locations, say "R FINGER".
00700
00710 *29 Feb 1972 "Sticky PPN's" (RPG, COMPILE) DCS
00720
00730 A PPN specification [P,PN] appearing before a file name in an
00740 RPG command string will be used for all subsequent files which
00750 do not specify a PPN explicitly. This default remains in effect
00760 until another "sticky PPN" is specified.
00770 As an example, if I am running under [AIL,DCS]:
00780
00790 COMPILE SAIL=HEAD+DB+[S,AIL]SAIL+SYM+PARSE+PROD[AIL,DCS]+EXPR
00800
00810 would write the output on [AIL,DCS], get HEAD,DB, and PROD from
00820 [AIL,DCS], and get SAIL, SYM, PARSE, and EXPR from [S,AIL].
00830
00840 *1 Jan 1972 SAIL Statement Counter Profile RES
00850
00860 To find out how to get SAIL to give you execution frequency data for
00870 pieces of your program, list NEWMAN[S,AIL].
00880
00890 *2 Mar 1972 CREF Default Listing Device DCS
00900
00910 The CREF default listing device has been changed from LPT to DSK.
00920 This change is not made in RPG mode (so that the CREF system
00930 command will still go directly to LPT).
00940
00950 *14 Mar 1972 TV "." and <esc>I Features DCS
00960
00970 Typing "⊗." (see TVED.DCS[UP,DOC] for notation) will cause the current
00980 page to become a permanent part of the file (like "W" in SOS). CANCEL
00990 will henceforth bring back this version, not the old one.
01000
01010 To interrupt a "FIND" search prematurely, type <esc>I. This replaces
01020 the "\<crlf>" method.
01030
01040 *23 Mar 1972 TV for III DCS
01050 The TV editor (though still officially unsupported) will now run on
01060 both Data-Disk and III. In fact, you can transfer (by detach/attach)
01070 from one to the other in mid-edit!
01080
01090 *30 APR 72 SEND RPH
01100 SEND NOW HAS THE FOLLOWING FORMATS:
01110
01120 SEND PN SEND TO ALL PN'S
01130 SEND * WRITE NOTICE.TXT
01140 SEND *,PN SAME AS SEND PN
01150 SEND P,* SEND TO ALL P'S
01160 SEND P,PN SEND TO SPECIFIC P,PN
01170 SEND *,* SAME AS SEND *
01180 A PN IS SOME PROGRAMMER NAME
01190 A P IS SOME PROJECT NAME
01200
01210 *30 APR 72 FAIL FW
01220 The double arrow character is no longer treated specially
01230 within the comment portion of a line. When not within a
01240 comment, it is equivalent to a carriage-return, line-feed
01250 pair. Now, within comments, it prints as itself.
01260
01270 *3 JUN 1972 RAID DCS
01280 A new version of RAID is on the system. Since it is compatible with
01290 both Data-Disc and III consoles, I have put it on SYS: as both
01300 RAID.REL and TVRAID.REL. Therefore /V, /1V, /H, /1H will all load
01310 the same program. Later, TVRAID will be phased out (of LOADER, RPG)
01320 and the numeric argument to H and V switches will be ignored.
01330 This version has been tested fairly carefully. But report any
01340 problems you have to DCS, anyway. The old files are saved as
01350 RAID.RLO and TVRAID.RLO on [CSP,SYS].
01360
01370 The following things have been changed:
01380 __ There are a few display changes; in particular, the arrow
01390 conventions of the Data-Disc RAID are now used everywhere.
01400 __ Byte mode input will be displayed in byte mode.
01410 __ Conditional breakpoints now work exactly as advertised.
01420 __ Symbol←Expr, Symbol:, and Symbol<ctrl>K now work properly.
01430 __ All opcodes work on input (incl. ANDCAM, ORCAB, etc.)
01440
01450 The following new features have been added:
01460 __ There are three new entries to the dispatch table preceding
01470 DDT (JOBDDT → DDT) -- see RAID.ON[S,DOC] for the meaning of
01480 this table. The three are:
01490 DDT-12: →$RPTCNT See below
01500 DDT-11: →$BGDDT First word of DDT
01510 DDT-10: →DDTEND Last word of DDT
01520
01530 __ This is "Version 1" of RAID. The version is henceforth stored
01540 in the leftmost 13 bits of JOBDDT. Since DDT and old RAID
01550 contain 0 here, you can tell which you have loaded. This is for
01560 the benefit of programs which use new features -- they can
01570 try alternate methods if the Version isn't high enough.
01580 __ If you insert a JSR $I in your program, you will effectively
01590 place a breakpoint at that location. You can proceed via <ctrl>P.
01600 DO NOT single-step or set a breakpoint on this instruction!
01610 $I is an INTERNAL symbol in RAID. There is a pointer to it at
01620 DDT-6.
01630 __ When you type <call>DDT<cr>, RAID will simulate a breakpoint at
01640 the address specified by JOBOPC. You can proceed with <ctrl>P.
01650 Do not expect this to work if you enter DDT before running anything,
01660 or if your program jumps to DDT (unless it stores a reasonable
01670 address in JOBOPC first).
01680 __ n<ctrl><meta>S, where n is a number, will execute instructions
01690 in multi-step mode, as it would if n were absent. However, no
01700 change will be made in the display until:
01710 1) n instructions have been executed (<ctrl>X'ed subr =1 instr.)
01720 2) RAID must pause to get instructions at a subroutine call.
01730 3) You interrupt the stepping by typing something, or a
01740 breakpoint is encountered.
01750 After you respond at a type (2) pause, again the display remains
01760 unchanged until one of the conditions occurs again. If you
01770 responded <ctrl>S or <ctrl>X to the pause, the count will be
01780 exhausted before the display changes again -- barring type (3)
01790 events. The remaining count, if any, is always available in
01800 $RPTCNT. This is useful for counting exact numbers of
01810 executions in a given routine, etc.
01820 __ Symbol<meta>K obliterates the Symbol. Unlike <ctrl>K, which
01830 simply eliminates typout of the symbol, this also makes it
01840 undefined for typein. If, for instance, you have two locations
01850 with the name NM1, do:
01860 NM2←NM1 Assigns a new name to one of them.
01870 NM1<meta>K Deletes this symbol completely.
01880 NM1; Reveals value of the other NM1. Now
01890 NM2 refers to the first.
01900 __ Macros:
01910 Address<ctrl>M<letter> defines <ctrl><meta><letter> as
01920 a macro. When the macro is invoked, Address (it can be just
01930 an address or a byte pointer value) will be put in $M-1 (see
01940 RAID.ON[S,DOC]. This has the effect of evaluating the string
01950 at Address before evaluating any more keyboard input -- expanding
01960 the macro. Be warned that many <ctrl><meta><letter> combinations
01970 already mean something -- use one you can do without (the macro
01980 takes precedence).
01990 *4 JUN 1972 NEW DISPLAY EDITOR SRS
02000
02010 there now exists a new display editor, called ED, available for
02020 experimentation. to run it, type
02030 RU ED[S,SRS]
02040 when it starts up, there will be some documentation on the screen.
02050 ED is presently experimental, and improving. Features
02060 include: editing several files at once, splitting screen between
02070 several files or strings, faster than TV in some cases.
02080
02090 *6 JUN 1972 PUB MANUAL TES
02100
02110 A new version of PUB was put up today with some obscure bugs fixed.
02120 Indexes and headings now work well. AFTER PAGE does not always
02130 work, but AFTER TEXT is usually equivalent and does work.
02140 If you must use old version, please tell me why! To use it, log in
02150 as 12,TES and RUN PUB.
02160
02170 There is a new manual: SPOOL PUB.TES[S,DOC]/N/B It is 80 PAGES long, so
02180 if you don't plan to use PUB for a few months, it is advisable to
02190 wait for the SAILON to be printed. The new manual has an index
02200 and a tutorial for beginners, plus appendices with (untested) examples.
02210 To use PUB for simple purposes, only a portion of the manual needs to be
02220 read.
02230
02240 *MAR 1972 LOGOUT REG
02250 Recent changes to logout command.
02260
02270 The logout command is used to terminate a job that was created
02280 by Login, Fork, or Cfork commands. The usual form of the command is
02290 K or KJOB, typed at monitor level, followed by a carriage return.
02300
02310 A new command is called KAT, which combines the features of the
02320 K command and the ATtach command. KAT requires the job number of the
02330 job to which you want to attach. As in the Attach command, if you
02340 are attaching to a job with a different PPN than the job you are leaving,
02350 you must supply the ppn of the job to which you are attaching.
02360
02370 Command Formats
02380 Note that curly backets { and } denote optional
02390 arguments; pointy brackets < and > denote a symbolic item which should
02400 be replaced by some concrete instantiation of that item.
02410
02420 K or KJOB command:
02430
02440 K{JOB}{/<switch list>}
02450
02460 KA{TTACH} <job number> {[<project name>,<programmer name>{]}}{/<switch list>}
02470
02480 Each command line is terminated by a carriage return.
02490
02500 The item <switch list> consists of any sequence of letters
02510 chosen from the list below:
02520 THIS LIST HAS BEEN OMITTED BECAUSE I FORGOT THEM ALL.
02530
02540 For further confusion, consult R. Gorin.
02550 *1969 DDT WFW
02560 The following changes have been made to DDT:
02570
02580 l. Halfword printout is now of the form A,,B instead
02590 of (A)B. Either form may be used on input. The difference
02600 is that A,,B truncates A to 18 bits before
02610 swapping halves while (A)B does not.
02620
02630 2. $U is a new output mode. It is the same as $A$H.
02640 3. $F mode will now print normalized floating permit
02650 numbers as decimal integers. This means that
02660 FORTRAN users may, in general, use $F to look at
02670 all variables and they will be printed correctly
02680 either fixed or floating.
02690
02700 4. If the address of a string of ASCIZ text is placed
02710 in $nB+3, then whenever breakpoint n is reached,
02720 DDT will act as if the characters in the string were
02730 being read from the teletype. If you are preparing
02740 such a string in advance use either $ or ≠ (≠33 octal)
02750 for altmode.
02760
02770 5. If a bytepointer to an asciz string is placed in
02780 $M-l, DDT will act as if the characters in the string
02790 are being read from the teletype.
02800
02810 6. $$7" <delimiter> characters <delimiter> will act just
02820 like an asciz statement in MACRO or FAIL,i.e.,
02830 more than one word will be filled with asciz for
02840 the characters if necessary. $$" will have a similar
02850 effect but with sixbit.
02860
02870 7. Typing <number>$$P will cause DDT to do an automatic
02880 proceed <number> times instead of forever.
02890
02900 8. When printing in $$ mode, no word will be printed
02910 out as an I/O instruction (COND, DATAO, CONI, etc.)
02920 unless the device number is in a special table. The
02930 table is 10 words long and is in $I-1, $I-2, etc.
02940 Simply put device number here to have the appropriate I/O
02950 instructions printed.
02960
02970 9. If an address is placed in $M-2 then for each character
02980 DDT wishes to output, a pushj 1,@$M-2 will be executed.
02990 This allows output to be redirected to some device
03000 other than the TTY. The character is in register 5. The
03010 routine should preserve all AC's and end with a POPJ l,.
03020
03030 10. In byte mode output ($<number>0), if a size of 0
03040 is specified, DDT will use a special mark in $M+2.
03050 The boundry between 1 and 0 bits specifies the size
03060 of the bytes. For example, a word containing
03070
03080 11111111111 00000000000 11100010110001
03090
03100 would print 2 . 11 bit bytes, 2 3 bit bytes, 2 1 bit
03110 bytes, a 2 bit bytes, a 3 bit byte, and a 1 bit byte.
03120
03130 11. Bytes may be input of $<number>%. This should be
03140 followed by a string of unsigned octal numbers
03150 separated by common and terminated by an altmode. The
03160 number of bytes in a word is not integal the last
03170 byte is treated as if the word were larger
03180 (bit number greater than 35). This makes input compatible
03190 with output. A size of O uses the mark in $M+2
03200 as above.
03210
03220 12. It is now possible to print flag words and T type
03230 instruction (TRUN, TLNN, etc.) with suitable names
03240 for the bit involved. In $M+3 a pointer of the following
03250 form is placed:
03260
03270 _______
03280 | |
03290 _______ | |
03300 $M+3 | L1 | T0 | | Table 0 |
03310 | |
03320 _______
03330
03340
03350 _______
03360 | |
03370 | Table 1 |
03380 | |
03390 _______
03400
03410 _______
03420 | |
03430 | Table 2 |
03440 | |
03450 _______
03460 As many tables as desired may be included. The pointer
03470 to the last table should have 0 in the left half. Each
03480 table contains 36 words. The nth word contains the
03490 RADIX50 for the name of bit n. $<number>J mode will
03500 cause a word to be printed out using the bit names in
03510 table number. If an entry for a bit in 0, the numeric
03520 value will be printed. A typical word might look like
03530
03540 foo! baz! 123,, fool! garp! 2
03550
03560 $J means $0J. $nL causes the left half to be
03570 printed in symbolic and the right half to be printed in
03580 ↑STODAT:
03590 bit mode, using the names of the bits as if they appeared
03600 in the left half. $<number>V prints the left half in symbolic
03610 and the right half in bit mode.
03620
03630 13. You can now transfer to what is pointed to by the left half
03640 of a word in the same manner as you transfer using <tab>.
03650 The command is <control>].
03660
03670 *FEB 1972 NEW WHO DCS
03680 As of 12-9-71:
03690
03700 1. WHO will run for about two minutes, then quit. You can reset
03710 this time by issuing commands (see below).
03720
03730 2. Typing <call> does not stop spacewar jobs. However, after about
03740 6 seconds of operation after a <call>, the spacewar portion of
03750 WHO will bomb out (PC EXCEEDS MEM BOUNDS AT 377777). This will
03760 be made cleaner if the system types give me some help.
03770
03780 3. WHO commands are now single-character commands. WHO will not wait
03790 for a carriage return before executing one.
03800
03810 4. Previously, many lines of the WHO page were lost below the bottom
03820 of the screen. WHO now provides a "windowing" feature. Type "↑"
03830 to move the text up, so that the line which did appear at the
03840 center of the screen now appears at the top. This reveals several
03850 new lines at the bottom. A digit preceding the "↑" serves as a
03860 repeat factor.
03870
03880 5. The "↓" command, with optional repeat factor, moves the text down
03890 by a half-screenful, unless the first line already is displayed.
03900
03910 6. The "E" command causes WHO to quit. However, the last-drawn screen
03920 will not be cleared. So you can look at it.
03930
03940 7. Any other character will cause WHO to clear the screen (revealing
03950 your old page printer), then quit.
03960 *14 June 1972 VIDEO SWITCH DOCUMENTATION LES
03970 A SAILON describing the video switch hardware resides in
03980 VDS.LES[S,DOC]. A description of keyboard commands and monitor calls
03990 for controlling the switch and DD channel allocation are described in
04000 VIDEO.LES[UP,DOC]. To get a summary of the keyboard commands, say
04010 "HELP DISPLAY" or "SPOOL KEY.LES[UP,DOC]".
04020
04030 *7 July 1972 DOCUMENTATION FILES LES
04040 Online documentation files are divided into several areas, as follows.
04050 [P,DOC] contains the compiled version of the lab phone
04060 directory and other lists of people.
04070 [UP,DOC] contains user program descriptions (informal).
04080 [S,DOC] contains SAILONs, which are more formal descriptions
04090 of programs and hardware.
04100 [AIM,DOC] contains A. I. Memos, which report research results.
04110 [BIB,DOC] contains bibliographies of films, theses, SAILONs, etc.
04120
04130 *23 JULY 1972 KLOG RHT
04140 The KLOG command allows you to switch areas in one line. Semantically
04150 it is LOGOUT, followed by LOGIN. The syntax is:
04160
04170 KLOG {/<logout switch>} {ppn spec (as you would type to LOGIN)}
04180
04190 examples
04200
04210 KLOG 1/RHT
04220
04230 KL/F 1|RHT
04240
04250 KL
04260 1,RHT
04270
04280 *24 Jul 1972 SAIL DCS,RHT,JRL
04290 LEAP news
04300
04310 1. In the past global model users of LEAP were required
04320 to have the statement:
04330
04340 REQUIRE -1 NEW_ITEMS;
04350
04360 in order to inhibit the allocation of various tables
04370 for the local leap model. This statement is no longer
04380 required. Instead the decision to allocate the tables
04390 will be made using the following criteria. The local model
04400 tables will be allocated only if any of the programs loaded
04410 together to form a single job contain any declared local
04420 items ( that is, any items declared without the attribute
04430 GLOBAL), or any of the programs contain the statement:
04440
04450 REQUIRE n NEW_ITEMS;
04460
04470 where "n" is greater that 0.
04480 NOTE: this means that all users of local model LEAP must now
04490 "require" new_items if they are going to dynamically create
04500 non-global items by using the function NEW.(previously an
04510 implicit REQUIRE 60 NEW_ITEMS was contained in every program).
04520
04530
04540 2. LEAP tables are now allocated as part of the SAIL initialization
04550 code rather than on the first call to any LEAP subroutine.
04560 The tables will be allocated if any of the SAIL programs
04570 loaded contain declared items, itemvars, sets, lists or calls
04580 to LEAP. This change was made so that datums of items could
04590 be utilized before the first call to LEAP.
04600
04610 3. The type codes for items have been altered. The new codes
04620 returned by the TYPEIT function are as follows:
04630
04640 0 - item deleted or never allocated
04650 1 - no type (no datum for this item)
04660 2 - item is bracketed triple
04670 3 - string
04680 4 - real
04690 5 - integer
04700 6 - set
04710 7 - list
04720 8 - procedure
04730 16 - string array
04740 17 - real array
04750 18 - integer array
04760 19 - set array
04770 20 - list array
04780 21 - invalid (runtime has screwed something up)
04790 The very astute user will notice that the only changes are to
04800 up the codes for arrays and invalid by 5.
04810
04820 IMPORTANT NOTE:This unfortunately will necesitate the recompilation
04830 and reloading of any programs which use array items as the RUNTIME
04840 routines also use these type codes.The standard
04850 compiler SAIL on [1,3] will have these changes as of 23:59 WED,
04860 jul26. Therefore if any of your programs use array items you should
04870 recompile them starting Thurs jul 27. Foist all complaints onto
04880 Jim Low.
04890
04900
04910 *25 Jul 1972 SPOOLER REG
04920 SPOOLER NEWS:
04930 The old spooler '*LIST*' has been removed from the system.
04940 Users of the spooling subroutines described in SPSUB.REG[UP,DOC] will
04950 have to reload with the new libraray.
04960
04970 The command SPOOLQ has been removed. Instead, use the command
04980 QSPOOL. This has the advantage that the command can be abbreviated
04990 to one letter and the SPOOL command to two letters.
05000
05010 A new SPOOL command is planned. This will allow users to more
05020 fully utilize features of the new spooler.
05030
05040 *1 Aug 1972 FORTRAN REG
05050 DEC FORTRAN version 25 and LIB40 version 31 have been put up.
05060 Some of the bugs in the compiler / operating system have been
05070 eliminated.
05080
05090 *9 Aug 1972 DATA DISK FW
05100 Two new features have been added to data disk DPYOUT:
05110
05120 1) Overlapped mode, enabled by bit 0 of header word 0.
05130 In this mode, a DPYOUT will return without waiting for
05140 the transfer to be completed (although it will wait
05150 for any previou transfer), enabling the program to
05160 continue running. Header+2 will be set nonzero during
05170 the transfer, and to zero after the transfer is complete,
05180 so testing this is convenient (which should be done before
05190 changing the buffer). A DPYOUT with a zero word count will
05200 wait for a previous transfer without initiating a new one.
05210
05220 2) Double field mode, useful for text output. This is enabled
05230 by bit 1 of header word 0 and will cause the buffer to be
05240 transferred twice, once on each field. Header+3 should specify
05250 the address of the line address command word, which should
05260 contain the low-order line address as the third command in
05270 the word. Bit 24 of this word will be set to the proper
05280 field on each transfer. This feature cannot be used if more
05290 than one low-order line address command is used.
05300
05310 *16 Aug 1972 AP NEWS (APE, HOT) ME
05320
05330 We have a line from the Associated Press (AP) over which we get
05340 national and international news. The news that comes in gets filed
05350 on the disk and saved for about 24 hours.
05360
05370 For use in reading the news, there are two programs on the system.
05380
05390 Type "R HOT" to have the news typed on your console as it comes in.
05400
05410 Type "R APE" to be able to selectively read the news that is on file.
05420 The stories are catagorized by keywords; to read the news, you type
05430 to APE whatever keywords you want to read about. To get help when
05440 you are running APE, type "?" and carriage return at any point. For a
05450 list of the keywords, TYPE the file WORDS.SRT[AP,SYS] or SPOOL the
05460 file WORDS.LST[AP,SYS].
05470
05480 For further information, see the file APE.ME[UP,DOC].
05490
05500
05510 *16 AUG 1972 SAIL MATRIX ROUTINES PACKAGE SHK
05520
05530 Following Matrix Routines Now Available:
05540
05550 1) Real Matrix Multiplication Routine
05560 Multiplies two n-dimensional matrices (2-dimensional arrays)
05570 (size m x n by n x p to get a m x p matrix)
05580 or multiplies a 1-dimensional matrix by an n-dimensional matrix
05590 or an n-dimensional matrix by a 1-dimensional.
05600 MATMUL(REAL ARRAY A[a:b,c:d],REAL ARRAY B[c:d,e:f],REAL ARRAY C[a:b,e:f]);
05610 multiplies A by B and places the result in C
05620 (MATMUL(A,B,A) and MATMUL(A,B,B) are also valid.)
05630 The only thing it won't do (I think) is multiply two 1-dimensional
05640 matrices or n-dimensional arrays (n>2).
05650
05660 2) Array Clear Routine
05670 MATCLR(REAL (or INTEGER) ARRAY A);
05680 Zeros the array A.
05690
05700 3) Real Array Multiplied by a Real Constant
05710 CONMUL(REAL ARRAY A,REAL B);
05720 Multiplies array A by constant B and places the result in A.
05730
05740 All three are available by saying REQUIRE "MATMUL[4,SHK]" LOAD_MODULE;
05750
05760
05770 *30 Aug 1972 UUO SHK
05780 There is now a numerical listing of the UUO's - UUO.SHK[S,DOC]
05790
05800 *4 Sept 1972 AP NEWS (APE, HOT) ME
05810 The AP news is now spooled once a day (at a somewhat random
05820 time). The listing, which will be kept in the conference
05830 room, will indicate a file name of "APNEWS[AP,SYS]".
05840
05850 *4 SEP 1972 FILDMP RPH
05860 New program to list files in different formats. See FILDMP.RPH on UP,DOC.
05870
05880 *4 SEP 1972 NEW SAIL RHT
05890 EFFECTIVE 1201 AM SAT, 26 AUG, A NEW SAIL SYSTEM WILL BE UP. ITS
05900 SEGMENT WILL BE SAISG4. THIS NEW SYSTEM WILL INCLUDE SEVERAL NEW
05910 FEATURES, INCLUDING USER REQUESTED INITIALIZATIONS, A LOCATION(X)
05920 FUNCTION, AN IMPLICIT ARRAY: MEMORY[0:MEMSIZE], THE RUDIMENTS OF
05930 MULTIPLE PROCESSES, AND MUCH MORE. WE WILL TRY TO HAVE SOME
05940 DOCUMENTATION READY BY THE LATTER PART OF THE WEEK.
05950 *22 SEP 1972 NEW SAIL RHT,JRL,KVL
05960 THE NEW SAIL SYSTEM IS UP. THERE ARE MANY NEW FEATURES INCLUDING
05970 MULTIPLE-PROCESSES WITHIN JOBS,EVENTS, A LIMITED FORM OF BACKTRACKING
05980 BETTER FOREACH STATEMENTS, BETTER ERROR RECOVERY ETC.
05990
06000 THE DOCUMENTATION FOR THE NEW FEATURES IS NOT YET AVAILABLE, BUT
06010 EXAMPLES OF THE GLORY OF NEW SAIL ARE CONTAINED IN PAPER.DOC[S,JRL]
06020 NEWFEA.TXT[S,JRL].
06030
06040 THE NEW SYSTEM USES SAISG4, LIBSA4, HLBSA4, AND FOR YOU GLOBAL
06050 MODEL HACKERS GLBS10.
06060
06070 NO SOURCE LANGUAGE INCOMPATIBILITIES ARE KNOWN, BUT OF COURSE
06080 ALL PROGRAMS LOADED TOGETHER SHOULD BE COMPILED WITH THE
06090 NEW COMPILER, AND OLD PROGRAMS SHOULD BE RECOMPILED BEFORE THEYY
06100 ARE RELOADED.
06110
06120
06130 OLD DUMP FILES SHOULD CONTINUE TO RUN FOR A WHILE UNTIL
06140 SAISG3 IS DELETED.
06150
06160 SEND COMPLAINTS AND BUGS TO S,AIL OR SEE JRL,KVL OR RHT
06170 A CURRENT LISTING WILL BE APPRECIATED. BETTER SERVICE
06180 WILL BE GIVEN IF YOU ARE ABLE TO TICKLE THE BUG IN A SMALL
06190 PROGRAM WITHOUT UNREADABLE MACROS.
06200
06210 FOR THE NEXT COUPLE DAYS WE WILL KEEP THE PREVIOUS COMPILER
06220 AROUND AS SAIL.921[1,3], SAILOW.REL AS SAILOW.921, AND
06230 GLBLOW.REL AS GLBLOW.921. IF YOU FEEL YOU ARE BEING
06240 SCREWED BY SOME TERRIBLE BUG, YOU CAN, FOR INSTANCE,
06250 SAY SOMETHING LIKE
06260
06270 R SAIL.921 <CR>
06280 * FOO←FOO <CR>
06290 * LOADER!
06300 * SAILOW.921[1,3],FOO <ALT>
06310
06320 WHERE THE STARS ARE TYPED BY THE SYSTEM
06330
06340 THIS WILL GIVE YOU THE EFFECT OF DOING
06350
06360 LOA /COM FOO
06370
06380 USING THE PREVIOUS SYSTEM.
06390
06400 *22 Sept 1972 Upper Segment RAID and DDT TVR
06410 RAID or DDT may be retrieved from the disk and run from an upper
06420 segment. This means your core image may contain RAID at a much lower
06430 cost (102 octal words instead of 12200 words for RAID). For details
06440 see DEBUG.DOC[1,TVR]
06450
06460 *22 Sept 1972 AP NEWS (APE) ME
06470 Multiple word keywords are now implemented in APE. To use them,
06480 separate the individual words with spaces in your keyword exressions.
06490
06500 Also, to have only the first few lines of each story you select
06510 typed out, type an "F" at the beginning of the story selection
06520 line ("Read which one(s)?"). If you use both "F" and "=" on
06530 the same line, the order is irrelevant. When you use the "F"
06540 feature, you cannot spool or save the stories in a file.
06550
06560 For details on using APE, see the file APE.ME[UP,DOC].
06570
06580 *12 Oct 1972 FAIL TVR
06590 FAIL has been changed to stop at each error and give the option to
06600 continue to next error, continue automatically or to edit. The edit
06610
06620 option will call SOS if there are line numbers and TVED if not. Any
06630 complaints should be sent to TVR. If you don't want to stop at each
06640 error, give FAIL the switch (F). The old version is FAIL.OLD[1,3].
06650 *21 Oct 1972 SAIL JRL,RHT,KVL
06660 A new SAIL compiler has been put up to correct bugs reported in the
06670 last few weeks. There should be no incompatibitlies with the preceding
06680 compiler and programs compiled with the previous compiler should
06690 be runable with programs compiled with the new compiler. Thus, there
06700 is no need to recompile or even reload SAIL programs which have
06710 been compiled since SEPT 21. If you do have a program which
06720 compiled in the last month but doesn't now:
06730 1. REPORT THE PROBLEM TO A SAIL HACKER - or send
06740 a message to AIL, including such details as
06750 where a copy of the offending program is and the
06760 nature of the SAIL bug.
06770 2. You may use the previous compiler by
06780 R SAIL.102
06790 * FOO←FOO
06800 * <call>
06810 where FOO is the name of your sail program and <call>
06820 represents the typing of the CALL button (the stars are
06830 typed by the system). The above sequence is equivalent to
06840 the system level command:
06850
06860 COM /COM FOO
06870
06880 A note to users of multiple processes and matching procedures:
06890 To initialize the multiple process environment the user
06900 should include the following declaration:
06910
06920 EXTERNAL PROCEDURE MAINPR;
06930
06940 He should also make sure this procedure is called before
06950 doing any process sprouting or matching procedure calling.
06960 This is best done by using the REQUIRE INITIALIZATION feature
06970 or by making:
06980 MAINPR;
06990 The first executable statement of your program.
07000 This initialization will be compiled in, in the near future but until
07010 then the above hack is required.
07020 *3 Nov 1972 USER INTERRUPTS FW
07030 The PC stored on a memory protect interrupt via the new-style
07040 user interrupt system is now the exact PC stored by the hardware,
07050 rather than being incremented as it used to be. This is consistent
07060 both with the old-style (DEC) user interrupt system and with the
07070 "ILL MEM REF AT USER xxxxxx" typeout. If you really care about
07080 the exact value of this PC, consult me or the PDP-10 flowcharts,
07090 as it is anything but consistent.
07100 *3 Nov 1972 VIDEO SWITCH FW
07110 The VDSMAP UUO now allows the 6 extra switch channels to be
07120 addressed by setting bit 9 in the AC and putting the channel number
07130 (0-5) in the TTY# field (11-17).
07140
07150 *8 Nov 1972 DUMPS REG
07160 DART, a new program to back up disk files on tapes, is available.
07170 system commands DUMP, RESTORE, TLIST, REWIND, BACKSPACE, ADvANCE all
07180 run DART now, instead of DAEMON (CAUTION: new syntax in some cases).
07190 See DART.REG[UP,DOC].
07200
07210 *8 Nov 1972 PROTECTION REG
07220 The file access protection bit 400, which formerly had no
07230 signifigance, now means 'Dump Never' in DART. All files that had
07240 used this bit have been renamed without it.
07250
07260 *11 Nov 1972 SYSTEM REG
07270 The job table JOBQUE in the system now contains either the positive
07280 or negative value of the queue code of a job. Formerly, it had
07290 always been negative.
07300
07310 *26 Nov 1972 FTP DCS
07320 A new FTP has been installed with the following features:
07330
07340 1) You needn't type the MODE, TYPE, or BYTE commands at all
07350 unless you want to change the defaults of S, I, and 36 resp.
07360 Changing them is inadvisable since we only support those
07370 settings. The defaults will be to the foreign host just
07380 before the first data transfer.
07390
07400 2) RSTR clears any DATA connections that the FTP thinks it has
07410 open. Sometimes it's wrong. If you get an indication from
07420 FTP that a command is illegal because the DATA connection already
07430 exists, do this command. It will go away when hacks in FTP
07440 have been cured.
07450
07460 3) QUOT sends the rest of the line directly over the net, so you
07470 can use it to execute other peoples commands which are either
07480 nonstandard or just unsupported here. This won't do any good
07490 if our end has to be involved in the operation, but it is good
07500 to do things like STAT (status), and HELP at CMU.
07510 See FTP.DCS[UP,DOC] for "complete" information about our FTP,
07520 and NIC document 10596 for complete FTP protocol description.
07530
07540 *26 Nov 1972 MLISP2 DAV
07550 A new version of MLISP2 has been put on the system. An old version
07560 exists and will be around for one week. The main motivation for
07570 the changes was to fix several serious bugs,
07580 and to clean the language up prior to publishing a manual.
07590 Changes:
07600 (1) Variable names can no longer be literals (e.g. IF, FOR, ...).
07610 (2) <IDEXP>, <ADDEDEXPR> have been subsumed by <EXPRESSION>.
07620 (3) SPECIAL variables now must be declared at translation (PARSE)
07630 time. To facilitate this, a new production has been added,
07640 having the form: SPECIAL <identifier_list>
07650 It is strongly suggested that all SPECIAL variables be
07660 declared at the top of the program using this production.
07670 (4) ?# in the syntax (to inhibit scanning) should now be just #.
07680 It no longer takes up a syntax position.
07690 (5) Setting variables in backtracking contexts is now done with
07700 real LISP numbers (formerly machine representation).
07710 A function CONTEXT() gets the current backtracking
07720 context. X{CONTEXT()/10 + 3} ← etc. is now legal.
07730 (6) THE FOLLOWING CHANGE IS TEMPORARY; WILL BE FIXED IN A DAY OR 2:
07740 (*) Prefixes are more restricted in use; the syntax is
07750 <PREFIX> <SIMPEX> as always, but IF, FOR, CASE, etc.
07760 are no longer <SIMPEX>'s but are now full <EXPRESSION>'s.
07770 Thus RETURN IF ..., PRINT CASE ..., etc. no longer work;
07780 use RETURN(IF ..., PRINT(CASE ..., etc.
07790 (7) The syntax of SELECT has been changed. Use SUCCESSOR instead
07800 of NEXT, and FINALLY instead of IN WHICH CASE.
07810 E.g. SELECT CAR(L) FROM L:'(A B C) SUCCESSOR CDR(L)
07820 UNLESS NULL(L) FINALLY FAILURE()
07830 (8) MLISP2.PRI now prints as it goes along, instead of at the end.
07840
07850 *3 Dec 1972 SAIL RHT
07860 A new SAIL system will be put up at 2359 Thursday, 7 Dec 1972
07870 This system will include
07880 (1) Leap revisions by JRL. This means that any programs
07890 that use LEAP should be recompiled.
07900 (2) User required initializations will take place as
07910 the first executable statement of the main
07920 program (after outer block arrays have been
07930 initialized). Programs that are loaded
07940 with any .REL files which have user initializations
07950 should have their main programs recompiled.
07960 (3) Hooks into the user interrupt system have been provided.
07970 Those interested should see Russ Taylor.
07980 (4) A new kind of declaration has been provided:
07990 CLEANUP proc1,proc2,proc3;
08000 Where proc1, etc. are names of (parameterless)
08010 procedures. The effect of a CLEANUP declaration
08020 is to cause the named procedures to be called
08030 whenever the block in which it occurs is exited,
08040 whether by falling through the end, doing a go_to,
08050 or by any other means. These procedures will be
08060 called before any local arrays, sets, or lists are
08070 released. The calls will take place in the order
08080 specified. Thus:
08090
08100 BEGIN
08110 INTEGER I;
08120 PROCEDURE FOO;I←1;
08130 BEGIN
08140 INTEGER ARRAY X[0:I];
08150 PROCEDURE BAZ;OUTSTR(CVS(X[I]);
08160 CLEANUP FOO,BAZ;
08170 :
08180 COMMENT NOW WHEN THIS BLOCK IS EXITED, X[1] WILL
08190 BE PRINTED OUT;
08200
08210 :
08220 END;
08230 END;
08240
08250 (5) various minor modifications to the process stuff.
08260
08270 The new segment is SAISG5.SEG, the libraries are LIBSA5.REL
08280 & HLBSA5.REL.
08290
08300 The old compiler will be SAIL.D07[1,3]
08310
08320 *12 Dec 72 AP NEWS (APE) ME
08330 There is now a full search feature in APE. If you type in a word
08340 that is not in the keyword dictionary, APE will tell you so and ask
08350 you if you wish a "Full search?". If you type Y, the news file will
08360 be searched for the specified keyword. If you type ?, a (complete)
08370 summary of this feature will be typed out (try it!). If you type
08380 anything else, no search will be done. You may interrupt a search in
08390 progress by typing any character. (That means you may not type ahead
08400 during a search.)
08410
08420 Note: Every word not in the dictionary causes a separate search to
08430 take place and will require you to say Y to "Full search?".
08440
08450 Special note: Normally the whole news file is searched, taking 8 to
08460 10 seconds, but if a non-keyword is the second part of an
08470 intersection (eg, NIXON * JJ), then only the necessary stories are
08480 searched.
08490
08500 *12 DEC 72 PUB TES
08510 PUBMAC.DFS[1,3] has been edited to correct an error in INDEX creation.
08520 The old version is PUBMAC.OLD[1,3] for a few weeks.
08530
08540 The PUB manual has been deleted from the disk. The abstract remains
08550 on PUB.TES[S,DOC]. Bound copies are in the SAILON file drawer.
08560
08570 In January, a new-SAIL PUB should be up with several obscure but
08580 annoying bugs removed. Major restrictions and bugs now known:
08590 SEND INDEX ⊂ ... ⊃ must be all on one line
08600 See {PAGE X} must be followed by a non-word-break
08610 such as ) , ; ] .
08620 but definitely not a SPACE
08630 NARROW, WIDEN, VARIABLE only work within a block -- not at top-level.
08640 TURN OFF "}" inside blocks doesn't always work right (just for "}")
08650 ↓_abc_abc_abc_↓ seems not to work right in FILL mode someplaces.
08660 Footnotes hack a lot, esp. if the page fills up during one.
08670
08680 *23 Jan 73 AP NEWS (APE) ME
08690 A new version of APE has been put on the system. The new APE
08700 includes several changes to input formats, particularly where file or
08710 spooler output is desired. The file APE.ME[UP,DOC] has been updated
08720 to explain all the new features in detail. You should read that
08730 file, especially pages 4 to 12, before trying to run APE.
08740 Alternatively, you can type a question mark (and carriage return) to
08750 APE at any time to get help. Here are some of the main changes.
08760
08770 All input lines must now be ended with carriage returns (this
08780 includes the "Y" to cause a search).
08790
08800 Input to APE from a command file is now possible (and easy/fun). The
08810 command file should have the name APE.CMD to be most convenient, but
08820 any file name is legal as is (almost) any text file format (SOS, TV,
08830 E, etc.).
08840
08850 A "CHOOSE" feature has been added to allow you to see the beginning
08860 of each story and then decide if you want to see the rest of the
08870 story.
08880
08890 To get output to a file, you say
08900 <filename> ←
08910 followed by the usual story selection specification.
08920
08930 To get output to the spooler, you add an "S" to the selection line.
08940
08950 To avoid having stories typed out, for instance when they are being
08960 spooled, add a "D" (meaning Dont type 'em) to the selection line.
08970
08980 [ESC] I will interrupt searches as well as typeouts now.
08990
09000 A couple of features are written up in the documentation although
09010 they are not yet implemented. (The writeups do say of course that
09020 these features are unimplemented.) The features are: 1) AUTOMATIC
09030 NOTIFICATION, whereby you can be notified whenever a story comes in
09040 that matches a keyword expression you have specified; and 2) typeout
09050 of the keywords by which a story has been categorized. These
09060 features are written up in the hope that you will read the
09070 descriptions now and will understand the features when they are
09080 implemented.
09090
09100 *28 Jan 73 SAIL JRL
09110
09120 The item NIC returnedby INTERROGATE when the notice queue is empty,
09130 is now the same as the item UNBOUND used in ? FOREACHES and
09140 matching procedures.
09150 i.e.
09160 (NIC=UNBOUND) is TRUE
09170
09180 UNBOUND has a new name BINDIT since we felt the name UNBOUND had
09190 erroneous connotations.
09200
09210 Both NIC and UNBOUND will be allowed for a while, but you should
09220 replace them with BINDIT in your source-files.
09230
09240 Because of these changes programs using NIC, UNBOUND should be
09250 recompiled.
09260
09270 ANY is now an item (though it can't be used in MAKE statements).
09280
09290 So you may now say:
09300 ITMVR ← ANY;
09310 ERASE A⊗B≡ ITMVR;
09320 which will have the same effect as
09330 ERASE A⊗B≡ANY;
09340 ANY may be an element of a set or list.
09350 All itemvars are originally initialized to ANY.
09360
09370 *1 Feb 73 AP NEWS (APE) ME
09380 The keyword listing feature has now been implemented. Add a "W" to
09390 the selection line to have the keywords of each story typed out ahead
09400 of the story.
09410
09420 *22 Feb 1973 FAIL FW
09430 Several changes have been made to FAIL:
09440 1) CALL names are now automatically OPDEFed as their corresponding
09450 CALLIs, so CALL is virtually obsolete. This is done dynamically
09460 so it should always be up to date.
09470 2) BEND, if given an identifier argument, now checks that argument
09480 against the name of the block it ends, and generates an error
09490 message if they mismatch. This can be used as a check on
09500 BEGIN/BEND phasing.
09510 3) The symbol $. is now available, which is like . except that it
09520 refers to the location actually occupied by the current instruction.
09530 This differs from . inside literals or if a PHASE is in effect.
09540 4) Declaring a symbol both INTERNAL and EXTERNAL is now an error,
09550 rather than causing FAIL to drop dead as it used to.
09560 5) The test for too many BENDs now works properly.
09570 6) Frequently redefined macros no longer eat up large amounts of core.
09580
09590 *25 FEB 73 COPY RPH
09600
09610 New copy features:
09620 1) If you use [p] instead of [p,pn] the current default pn is used.
09630 2) XGPLIST, new command, equivalent to COPY XGP:←.
09640 3) New switch for font selects, format:
09650
09660 /FONT{#n}=<filename>{.ext}{[<p>,<pn>]}
09670
09680 If no ext is given, FNT is assumed. If no p,pn is given
09690 XGP,SYS is assumed.The #n is the font id number, if it is left
09700 out, it is assumed to be 0.
09710 4) New format for /EXTRA switch, if you use /EXTRA≡n.
09720 (yes that's an equivalence sign), then n is the number
09730 of scan lines to skip between text lines, not the number
09740 of extra line feeds to insert.
09750
09760 *4 MARCH 1973 MLISP DAV
09770
09780 New version of MLISP is up; old copies will be kept on MLISP.OLD
09790 and MLISPC.OLD on the system for a week or two. Differences:
09800 1) A couple of lingering bugs were squashed.
09810 2) A COMMENT expression was added so that MLISP will accept TV
09820 format files. Syntax:
09830 COMMENT <any characters except ; or unpaired " or %> ;
09840 It may occur anywhere an expression may be used, e.g.
09850 A + COMMENT A DUMB PLACE TO PUT IT; B + C
09860 BEGIN
09870 COMMENT A BETTER PLACE TO PUT IT;
09880 A + B + C;
09890 END;
09900 The old %...% comment is still around as always.
09910 3) An updated version of the LISP compiler is included in MLISPC.
09920 4) Insignificant change: function names are printed horizontally
09930 instead of vertically. Don't worry, PRINT is not screwing
09940 up; that's the way it is supposed to work.
09950
09960 *5 MARCH 1973 PUB TES
09970
09980 THIS NOTICE IS ABOUT 70 LINES LONG, IN DECREASING ORDER OF
09990 IMPORTANCE.
10000
10010 A NEW VERSION OF PUB IS UP TODAY WITH MANY REPAIRS AND A
10020 FEW CHANGES. OLD VERSION IS PUB.OLD. SEE TES WITH PROBLEMS.
10030
10040 NOTE: UNTIL THE NEXT VERSION OF PUB IS UP, XGP USERS SHOULD
10050 USE THE "DEVICE TTY" COMMAND OR THE "/T" SWITCH, ESPECIALLY
10060 IF THE PAGE FRAME IS HIGHER THAN 53 LINES.
10070
10080 ABOUT 15 KNOWN BUGS HAVE BEEN FIXED (THANKS TO RKJ AT CMU FOR
10090 A COUPLE OF STICKLERS). FOOTNOTES SHOULD WORK BETTER;
10100 VARIABLE DECLARATIONS WORK; CROSS-REFERENCES OF THE FORM
10110 "UNIT!" LABEL NOW WORK; AREA TEXT AND COUNT PAGE CAN ONCE
10120 AGAIN BE DECLARED IN BLOCKS; ROMAN NUMERALS, MOD, MIN, AND,
10130 GROUP BEGIN...END, INSERT...PORTION (WITH NO SENDS), AND SOME
10140 OTHER THINGS NOW WORK WELL. TRY OUT YOUR FAVORITE BUG.
10150
10160 ONE BUG NOT YET FIXED: SOMETIMES PUB WILL LOOP
10170 WHEN THERE ARE AREAS DECLARED THAT DON'T START AT CHAR 1.
10180 REPORT OTHER BUGS TO TES.
10190
10200 CHANGES AND NEW FEATURES:
10210 (1) TYPEOUT DURING COMPILATION RESEMBLES NEW SAIL'S.
10220 NOTE: FILES LIKE 3INDE.PUZ AND 2CONT.PUG ARE GENERATED
10230 FILES. PAGE 1 OF TV FILES IS NOT REPORTED BY PUB.
10240
10250 (2) THERE IS NO LONGER A BLANK PAGE AT THE BEGINNING OF LPT
10260 DOCUMENTS.
10270
10280 (3) NEW COMMAND TO CIRCUMVENT CHANGE (2): "BLANK PAGE N" CLOSES
10290 THE CURRENT PGE AND LEAVES N BLANK PAGES IN THE DOCUMENT.
10300 THE PAGE COUNTER IS NOT AFFECTED. IF N IS OMITTED, 1 IS
10310 ASSUMED.
10320
10330 (4) FOR TTY USERS: INSTEAD OF CURLY BRACKETS AND HORSESHOE
10340 BRACKETS, YOU CAN NOW USE THE FOLLOWING CHARACTER PAIRS:
10350 $( MEANS LEFT HORSESHOE (OPEN MACRO)
10360 )$ MEAN RIGHT HORSESHOE (CLOSE MACRO)
10370 ]$ MEANS RIGHT BRACE (SWITCH TO TEXT MODE)
10380 THESE ARE ONLY VALID IN COMMAND MODE AND NEED NOT BE TURNED
10390 ON. ON THE OTHER HAND, THE FOLLOWING CONTROL CHARACTERS
10400 ARE ONLY RECOGNIZED IN TEXT MODE AND MUST BE TURNED ON
10410 (OTHER CHARACTERS MAY BE TURNED ON FOR THEM):
10420 $[ MEANS LEFT BRACE (SWITCH TO COMMAND MODE).
10430
10440 (5) NEW FEATURE: TURN ON/OFF TAB FOR "<CHARACTER>" ;;
10450 AS PUB READS THE MANUSCRIPT, IT SUBSTITUTES FOR EACH "TAB"
10460 FROM ONE TO EIGHT SPACES. THIS COMMAND CHANGES PUB SO THAT
10470 IT SUBSTITUTES THE SINGLE CHARACTER <CHARACTER> INSTEAD.
10480 THE COMMAND MUST BE FOLLOWED BY TWO SEMICOLONS OR ELSE IT MAY
10490 NOT TAKE EFFECT ON THE NEXT LINE. IF IT IS DECLARED IN A BLOCK,
10500 THE "END" OF THE BLOCK MUST BE FOLLOWED BY TWO SEMICOLONS OR
10510 THE ORIGINAL MEANING OF TAB MAY NOT REAPPEAR IN TIME FOR THE
10520 NEXT LINE.
10530
10540 (6) SINGLE SPACE, DOUBLE SPACE, AND TRIPLE SPACE NOW BREAK BEFORE
10550 CHANGING THE VALUE OF SPREAD, SO THEY TAKE EFFECT IMMEDIATELY.
10560
10570 SUGGESTIONS AND WARNINGS:
10580 (1) "COUNT PAGE" INITIALLIZES THE PAGE COUNTER TO NULL. IT
10590 GETS STEPPED TO 1 THE NEXT TIME A PAGE IS OPENED.
10600 THIS IS WHY THE TITLE PAGE HAS A BLANK PAGE NUMBER.
10610
10620 (2) AREA RE-DECLARATIONS DO NOT TAKE EFFECT UNTIL THE
10630 CURRENT PAGE IS CLOSED.
10640
10650 (3) IF YOUR DOCUMENT IS LONG, IT IS HELPFUL TO HAVE A SOURCE
10660 FILE FOR EACH CHAPTER, AND ON EACH DEBUG RUN TO "REQUIRE"
10670 FROM THE MAIN MANUSCRIPT FILE ONLY THOSE CHAPTER FILES THAT
10680 YOU ARE TESTING. GLOBAL MACROS SHOULD APPEAR IN THE MAIN
10690 FILE OF COURSE.
10700
10710 THE MANUAL HAS NOT BEEN CHANGED, BUT IT IS BACK ON THE DISK
10720 FOR THE BENEFIT OF NET USERS (SEE PUB.TES[S,DOC] FOR DETAILS).
10800
10900 *9 MARCH 1973 MLISP2 DAV
11000
11100 A new version of MLISP2 is up. Old version is on SYS:MLISP2.OLD for
11200 a week or so. There have been extensive changes, but most are additions
11300 so that programs shouldn't have to be altered. The changes:
11350
11400 1) The code generated in the syntax part of productions is somewhat
11500 shorter and more efficient.
11550
11600 2) There is now a way to prevent an identifier in the syntax part of
11700 a production from being turned into a LITERAL, namely precede it
11800 with a quote mark (').
11900 Example: {IF ...}
12000 makes IF a LITERAL, as well as generating code to check for it,
12100 but {'IF ...}
12200 just generates the code to check for it. In fact, any token
12300 of type identifier, number or delimiter may be included in
12400 the syntax by preceeding it with the quote mark; previously
12500 only delimiters could be so included.
12550
12600 3) Numbers in syntax patterns MUST now be preceeded by the quote
12700 mark; previously they could occur alone. This should not
12800 affect anyone, since I don't know of anyone who uses numbers.
12950
13000 4) The syntax of FOR, WHILE and UNTIL loops has been generalized
13100 slightly: `WHILE' and `UNTIL' are now interchangeable:
13200 Examples: FOR NEW I IN L DO NIL UNTIL I = X;
13300 FOR NEW I IN L DO NIL WHILE I = X;
13400 DO PRINT(X) UNTIL A=B;
13500 DO PRINT(X) WHILE A=B;
13600 WHILE A=B DO PRINT(X);
13700 UNTIL A=B DO PRINT(X);
13710 In addition, the code generated by COLLECT in all of the loops
13720 is now more efficient (generates an NCONC in some cases, rather
13730 than an APPEND).
13750
13800 5) The DEFINE expression and the vector operator (⊗) have been
13900 added to MLISP2 to make it more compatible with MLISP
14000 (c.f. the MLISP manual). However, the DEFINE
14100 expression is not quite as general: only prefix and infix
14200 functions may be DEFINEd, whereas MLISP would allow any
14300 symbol to be DEFINEd.
14400 Syntax: DEFINE <dterm>, <dterm>, ..., <dterm> (at least 1)
14450 <dterm> ::= <identifier> PREFIX [<token>] [<integer>]
14500 <identifier> <integer> <integer>
14550 <identifier> <token> [<integer> <integer>]
14600 where [] means optional.
14610 The integers are binding powers for the function; only one
14620 binding power, the right binding power, needs to be specified for
14630 prefixes. The <token>s are identifiers or delimiters which
14640 may serve as an abbreviation for the function.
14700 Examples: DEFINE NOT PREFIX;
14800 DEFINE NOT PREFIX ¬;
14900 DEFINE NOT PREFIX 1000;
15000 DEFINE PLUS + 350 400;
15100
15200 6) ONLY FUNCTIONS THAT ARE EXPLICITLY DEFINE'D TO BE PREFIXES MAY
15300 NOW BE USED AS PREFIXES (I.E. WITHOUT () AROUND THEIR
15400 ARGUMENT AND WITH THE VECTOR OPERATOR ⊗)!!! NO MORE USER-DEFINED
15500 PREFIXES UNLESS EXPLICITLY DEFINE'D!!!
15600
15700 *16 March 1973 FREEFOROL processes Text Macros LES
15800 Freeforol may be used to generate form letters or other fill-in-
15900 the-blanks text. It is described in FREEFO.LES[UP,DOC].
16000
16100 *21 March 1973 FIND Command TVR
16200 Typing FIND <programmer> will print the status of such jobs currently
16300 logged in. For example, FIND NET,GUE will find all network guests.
16400 Like WHO, this also clobbers your core image.